using System;
using Tarkin.InfrastructureLibrary.Core.Basic;
using Tarkin.InfrastructureLibrary.Core.PrimitiveTypes;

namespace Tarkin.InfrastructureLibrary.Tests.Core.Basic.TestUtilities.ConcreteClasses
{
    /// <summary>
    /// The ConcreteMultiplicityElement is a utility class used to facilitate unit testing.
    /// </summary>
    internal class ConcreteMultiplicityElement : MultiplicityElement
    {

#region Constructors

        /// <summary>
        /// Default constructor.
        /// </summary>
        public ConcreteMultiplicityElement () : base ()
        { }

        /// <summary>
        /// Overloaded constructor.
        /// </summary>
        /// <param name="isOrdered">Whether the MultiplicityElement is ordered or not.</param>
        /// <param name="isUnique">Whether the MultiplicityElement is unique or not.</param>
        /// <param name="lower">The lower value of the MultiplicityElement.</param>
        /// <param name="upper">The upper value of the MultiplicityElement.</param>
        public ConcreteMultiplicityElement ( bool isOrdered,
                                             bool isUnique,
                                             uint lower,
                                             UnlimitedNatural upper ) : base ( isOrdered, isUnique, lower, upper )
        { }

#endregion

    }
}
